【Unity3D 灵巧小知识点】☀️ |
您所在的位置:网站首页 › unity 移动速度 › 【Unity3D 灵巧小知识点】☀️ |
Unity 小科普
老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏! Unity小知识点学习 Unity 移动物体到指定位置的几种方法【精选快捷使用】在Unity中移动物体的方法有好几种,下面是精选的几种可直接使用的便捷方法 不管是移动3D游戏对象还是2D UI都可以使用哦! 方法一:使用Vector3自带的API方法移动 public float Speed=5; void Update(){ //将某个物体的本地坐标移动到(0, 0, 100)位置,速度为2 gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(0, 0, 100), Speed*Time.deltaTime()); }上述代码是将gameObject的本地坐标transform.localPosition,变成一个我们赋予的新坐标new Vector3(0, 0, 100),按照我们设置的一个float的速度进行移动 使用该代码效果如下: 插值运算的特点是,游戏对象移动时不是匀速的,而是变速运动,会由快而慢,最后一部分数值甚至会一直都达不到! 例如上述代码就是将某个游戏对象 使用插值运算移动到(20,5,0) 效果如下: DoTween作为Unity中最常用的几种插件之一 作用可大了去了,这里只是演示最基本的物体移动方法 首先,需要再工程中导入DoTween插件才可以使用 1)改变世界坐标 //移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离 transform.DOMove(new Vector3(1, 1, 1), 2); 只控制x轴上的移动,其他两个方向同理 transform.DOMoveX(1, 2);2)改变局部坐标 //移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离 transform.DOLocalMove(new Vector3(1, 1, 1), 2); transform.DOLocalMoveX(1, 2); 方法四:使用协程 IEnumerate public float Speed = 5f; private void Start() { StartCoroutine(MoveToPosition()); } IEnumerator MoveToPosition() { while (gameObject.transform.localPosition != new Vector3(20, 5, 0)) { gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(20, 5, 0), Speed * Time.deltaTime); yield return 0; } }这种方法其实就是第一种方法的实现,只不过使用在了协程里面。 先启动协程,然后使用Vector3.MoveTowards,将游戏对象移动到我们指定的位置即可! 效果如下: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |